package com.bright.ghj.common.converter;

import java.util.List;

/**
 * @Author txf
 * @Date 2023/11/29 14:34
 * @Description 基础转换接口
 */
public interface BaseConverter<P, D, V, C> {

    /**
     * PO 转 DTO
     * @param po
     * @return
     */
    D poConvertDTO(P po);

    /**
     * List<PO> 转 List<DTO>
     * @param poList
     * @return
     */
    List<D> poConvertDTO(List<P> poList);


    /**
     * DTO 转 PO
     * @param dto
     * @return
     */
    P dtoConvertPO(D dto);

    /**
     * List<DTO> 转 List<PO>
     * @param dtoList
     * @return
     */
    List<P> dtoConvertPO(List<D> dtoList);


    /**
     * DTO 转 VO
     * @param dto
     * @return
     */
    V dtoConvertVO(D dto);

    /**
     * List<DTO> 转 List<VO>
     * @param dtoList
     * @return
     */
    List<V> dtoConvertVO(List<D> dtoList);

    /**
     * Command 转 DTO
     * @param command
     * @return
     */
    D commandConvertDTO(C command);
}
